Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Sync feature flags #2279

Merged
merged 10 commits into from
Dec 20, 2023
Merged

Add Sync feature flags #2279

merged 10 commits into from
Dec 20, 2023

Conversation

ayoy
Copy link
Contributor

@ayoy ayoy commented Dec 19, 2023

Task/Issue URL: https://app.asana.com/0/0/1206046777189407/f

Description:
This change add support for Sync feature in Privacy Configuration, together with
4 subfeatures defining availability of various parts of Sync experience.
DDGSyncing gets a read-only feature flag variable as well as a publisher.
PrivacyConfigurationManager is now a Sync dependency, and DDGSync takes
care internally of listening to Privacy Config changes and updating feature flags
as needed.
Feature flag responsible for actual data syncing is handled internally in DDGSync
by cancelling all pending sync operations and disabling adding new operations.
Other feature flags should be handled by client apps.

Steps to test this PR:

  1. Fetch existing privacy config files for iOS and macOS.
  2. Serve them from a different location.
  3. Run each app, update Privacy Config URL (for macOS this can be done in runtime via Debug Menu).
  4. Manipulate feature flags and verify that they work according to the specification.

Copy Testing:

  • Use of correct apostrophes in new copy, ie rather than '

Orientation Testing:

  • Portrait
  • Landscape

Device Testing:

  • iPhone SE (1st Gen)
  • iPhone 8
  • iPhone X
  • iPhone 14 Pro
  • iPad

OS Testing:

  • iOS 14
  • iOS 15
  • iOS 16

Theme Testing:

  • Light theme
  • Dark theme

Internal references:

Software Engineering Expectations
Technical Design Template

@ayoy ayoy self-assigned this Dec 19, 2023
@ayoy ayoy requested a review from bwaresiak December 20, 2023 07:40
@ayoy ayoy assigned bwaresiak and unassigned ayoy Dec 20, 2023
@ayoy ayoy marked this pull request as ready for review December 20, 2023 07:41
Copy link
Collaborator

@bwaresiak bwaresiak left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great job!

@ayoy ayoy merged commit 4240dd5 into main Dec 20, 2023
10 checks passed
@ayoy ayoy deleted the dominik/sync-feature-flags branch December 20, 2023 15:51
samsymons added a commit that referenced this pull request Dec 21, 2023
* main: (35 commits)
  Add Sync feature flags (#2279)
  Add Sync Success Rate pixel  (#2277)
  add test 5 and fix test 4 (#2276)
  Fix: "SwiftLintPlugin" must be enabled before it can be used (#2274)
  Send WG invalid state reason (#2275)
  Typo
  Fix: "SwiftLintPlugin" must be enabled before it can be used
  Release 7.102.0 (#2273)
  Add search retention pixel for NetP (#2267)
  Run sync tests in matrix (#2263)
  SwiftLint build plugin (#2233)
  Update VPN active user check and debug options (#2269)
  Update Autofill Logins copy (#2246)
  Remove the reconnect/disconnect logic from the connection tester (#2272)
  Remove the Fastlane notes file temporarily (#2270)
  remove QR code from save recovery PDF view (#2271)
  Show dev environment indicator in Sync Settings (#2265)
  Release 7.101.0.1 (#2262)
  Sync Flow Error Handling (#2264)
  Fix fingerprinting UI tests (#2252)
  ...
samsymons added a commit that referenced this pull request Dec 22, 2023
# By Sam Symons (13) and others
# Via Bartek Waresiak (2) and others
* main: (69 commits)
  Custom config URL (#2278)
  Fix internal user toggling (#2282)
  Display warning icon in Sync Settings cell when data syncing is disabled (#2281)
  Add Sync feature flags (#2279)
  Add Sync Success Rate pixel  (#2277)
  add test 5 and fix test 4 (#2276)
  Fix: "SwiftLintPlugin" must be enabled before it can be used (#2274)
  Send WG invalid state reason (#2275)
  Typo
  Fix: "SwiftLintPlugin" must be enabled before it can be used
  Release 7.102.0 (#2273)
  Add search retention pixel for NetP (#2267)
  Run sync tests in matrix (#2263)
  SwiftLint build plugin (#2233)
  Update VPN active user check and debug options (#2269)
  Update Autofill Logins copy (#2246)
  Remove the reconnect/disconnect logic from the connection tester (#2272)
  Remove the Fastlane notes file temporarily (#2270)
  remove QR code from save recovery PDF view (#2271)
  Show dev environment indicator in Sync Settings (#2265)
  ...

# Conflicts:
#	DuckDuckGo.xcodeproj/project.pbxproj
#	DuckDuckGo.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants